﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Helena.Areas.Productos.Models;
using Telerik.Web.Mvc;
using Helena.Areas.Categorias.Models;
using Helena.Areas.Campanas.Models;
using Helena.Areas.Configuraciones.Models;
using System.Threading;
using Helena.Areas.Vendedores.Models;
namespace Helena.Areas.Configuraciones.Controllers
{
    public class LocalController : Controller
    {
        LogicaLocal db = new LogicaLocal();
        LogicaProducto pro_db = new LogicaProducto();
        LogicaCategoria cat_db = new LogicaCategoria();
        LogicaCampana cam_db = new LogicaCampana();
        LogicaUnidad uni_db = new LogicaUnidad();

        public ActionResult Index()
        {
            VendedorView vw = (VendedorView)Session["Vendedor"];
            if (vw.ID != 0)
            {
                ObtenerLocal();
                return View();
            }
            else
            {
                return Redirect("../Home/NoSession");
            }

        }

        [GridAction]
        public ActionResult Select()
        {
            ObtenerLocal();
            return View("Index", new GridModel(db.i_RetornarConfiguraciones()));
        }

        [AcceptVerbs(HttpVerbs.Post)]
        [GridAction]
        public ActionResult Insert()
        {

            ConfiguracionView p_v = new ConfiguracionView();
            if (TryUpdateModel(p_v))
            {
                p_v.Estado = true;
                db.i_AgregarConfiguracion(p_v.LocalID,p_v);
            }
            return View("Index", new GridModel(db.i_RetornarConfiguraciones()));
        }

        [AcceptVerbs(HttpVerbs.Post)]
        [GridAction]
        public ActionResult Delete(int? id)
        {
            int ID = id ?? -1;
            ConfiguracionView c = db.i_RetornarUnaConfiguraciones(ID);
            db.i_EliminarConfiguracion(1,c);
            return View("Index", new GridModel(db.i_RetornarConfiguraciones()));
        }

        [AcceptVerbs(HttpVerbs.Post)]
        [GridAction]
        public ActionResult Update(ConfiguracionView c)
        {
            db.i_ModificarConfiguracion(1,c);
            return View("Index", new GridModel(db.i_RetornarConfiguraciones()));
        }
        
        #region Extras

        private void ObtenerCategorias()
        {
            ViewData["Categorias"] = cat_db.i_RetornarCategorias();
        }

        private void ObtenerCampanas()
        {
            ViewData["Campanas"] = cam_db.i_RetornarCampanas();
        }

        private void ObtenerUnidades()
        {
            ViewData["Unidades"] = uni_db.i_RetornarUnidades();
        }

        private void ObtenerProductos()
        {
            ViewData["Productos"] = pro_db.i_RetornarProductos();
        }
        
        private void ObtenerLocal()
        {
            ViewData["Local"] = db.i_RetornarLocal(1);
            ViewData["Locales"] = db.i_RetornarLocales();
        }

        #endregion

    }
}
